package com.kfm.am;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ArrayListDemo {

    public static void main(String[] args) {
        // 底层也是数组 扩容是1.5倍扩容 Vector 1倍扩容
        ArrayList arrayList = new ArrayList(); // 容量是10
        ArrayList arrayList2 =  new ArrayList(20); // 容量是20
//        ArrayList arrayList3 = new ArrayList(arrayList2);
        arrayList.add("wbb");
        arrayList.add("zk");
        arrayList.add("zy");
        arrayList.add("wl");
        arrayList.add("hy");
        arrayList.add("wj");
        arrayList.add(0, "tzp");
        arrayList2.add("zk");
        arrayList2.add("zy");
        arrayList2.add("wl");
        arrayList2.add("zh");
        System.out.println(arrayList.get(0));
//        for (int i = 0; i < arrayList.size(); i++) {
//            System.out.println(arrayList.get(i));
//        }
        for (Object obj : arrayList) {
            System.out.println(obj);
        }
//        arrayList.forEach(obj -> System.out.println(obj));
//        Iterator iterator = arrayList.iterator();
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
        // 如果存储的是对象，必须得重写equals方法
        arrayList.indexOf(new Student("张三", 20));
//        arrayList.remove("wj");
        System.out.println("=====");
//        arrayList.removeAll(arrayList2); // 删除两个集合的交集
//        arrayList.retainAll(arrayList2); // 保留两个集合的交集
        System.out.println(arrayList.set(0, "田振彭"));
        List list = arrayList.subList(0, 3);
        Object[] array = arrayList.toArray();
        Object[] a = new Object[10];

        arrayList.toArray(a);
        for (Object obj : a) {
            System.out.println(obj);
        }

        System.out.println();
        arrayList.trimToSize();
//        ArrayList a = (ArrayList)arrayList.clone();
    }
}
